package com.itheima.health.controller;

import com.itheima.health.common.MessageConst;
import com.itheima.health.common.RedisConst;
import com.itheima.health.entity.Result;
import com.itheima.health.util.ValidateCodeUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;

import java.util.concurrent.TimeUnit;

/**
 * @author ：混元太极门
 * @date ：Created in 2022年06月08日
 * @description ：
 * @version: 1.0
 */
@RestController
@RequestMapping("/mobile/validateCode")
@Slf4j
public class MobileController {
/**
 * 验证码操作
    请求 URL: http://localhost:17080/mobile/validateCode/send?
            type=MOBILE_SIGNIN& telephone=13223456789
    请求方法: POST
 */
     @Autowired   //注入一个 redisTemplate模板
       private RedisTemplate redisTemplate;

  @PostMapping("/send")
      public Result send(String type, String telephone){
        log.info("获取验证码信息:",type,telephone);
       //生成验证码
      Integer code = ValidateCodeUtils.generateValidateCode(6);//生成6位验证码
      log.info("验证码:"+code);
      // 我们要把手机号 和验证码 存储到 redis
      String key = RedisConst.VALIDATE_CODE_PREFIX +"_"+type+"_"+telephone;
         //我们把手机号和验证码存到redis中  键和值都是字符串
      redisTemplate.opsForValue().set(key,code,3, TimeUnit.MINUTES);
                                          //手机号和 验证码只能存储3分钟
      return new Result(true, MessageConst.SEND_VALIDATECODE_SUCCESS);
  }



}
